Data transfer between a plurality of storage units such as memories and magnetic disks is performed by data transfer devices connected to respective storage units. In order to process the data transfer between the data transfer devices at high speed, each data transfer device performs data transfer processing directly to the other data transfer devices without the intervention of a controller such as a CPU (Central Processing Unit). Such processing is commonly known as a direct memory access (DMA) transfer processing.
Each data transfer device includes channel units corresponding to respective devices of data transfer destinations. When there is a demand for data transfer from other devices such as external servers, the channel unit corresponding to the respective devices of the data transfer destinations retains a command which is a DMA transfer instruction outputted from the controller. When each channel unit retains one or more command, a demand signal for demanding that the data transfer processor for executing DMA transfer processing executes a command is outputted. When the demand signal is received, the data transfer processor executes the command retained in the channel unit which outputted the demand signal.
When the data transfer device performs data transfer with a plurality of devices, a plurality of the channel units share one data transfer processor. The data transfer processor may execute only one command at one time. Therefore, when a plurality of the channel units output a plurality of demand signals simultaneously, the data transfer processor is required to select one of them and execute it. A device that is input with a plurality of commands from the controller, selects one command according to a specific arbitrating condition and makes the data transfer processor execute the command is called an arbitration device.
According to processing performed by the arbitration device, it may occur that a command is not executed for a long period of time while being retained in the channel unit. If an execution standby time of a command exceeds a certain constant value, the command is timed out and a data transfer error occurs. Technologies of arbitrating order of execution of commands in accordance with execution standby time of the commands in order to avoid such time-outs are disclosed in Japanese Laid-open Patent Publication No. 2002-366507, Japanese Laid-open Patent Publication No. 2002-229934, and Japanese Laid-open Patent Publication No. 05-342142.